#ifndef STEELCLIENTDATAPROVIDER_H
#define STEELCLIENTDATAPROVIDER_H

#include "ConfigData.h"

namespace SteelClientData {

bool getWorkingConditionData(NavTreeIndex index, ConfigWorkingConditionData& out);
bool getFirstWorkingConditionData(NavTreeIndex& index, ConfigWorkingConditionData& out);
bool getOxygenLanceData(NavTreeIndex index, ConfigOxygenLanceData& out);
bool getFirstOxygenLanceData(NavTreeIndex& index, ConfigOxygenLanceData& out);
bool getMaterialData(NavTreeIndex index, ConfigMaterialData& out);
bool getFirstMaterialData(NavTreeIndex& index, ConfigMaterialData& out);

void setWorkingConditionData(NavTreeIndex index, const ConfigWorkingConditionData& data);
void setOxygenLanceData(NavTreeIndex index, const ConfigOxygenLanceData& data);
void setMaterialData(NavTreeIndex index, const ConfigMaterialData& data);

bool getMainPageWorkingConditionData(NavTreeIndex index, MainPageWorkingConditionData& out);
void setMainPageWorkingConditionData(NavTreeIndex index, const MainPageWorkingConditionData& data);
void setMainPageWorkingConditionItem(NavTreeIndex index, int itemIndex, const char* name, const char* value);

bool getMainPageMaterialData(NavTreeIndex index, MainPageMaterialData& out);
void setMainPageMaterialData(NavTreeIndex index, const MainPageMaterialData& data);
void setMainPageMaterialItem(NavTreeIndex index, int itemIndex, const char* name, const char* value);

bool getMainPageOxygenLanceData(NavTreeIndex index, MainPageOxygenLanceData& out);
void setMainPageOxygenLanceData(NavTreeIndex index, const MainPageOxygenLanceData& data);
void setMainPageOxygenLanceField(NavTreeIndex index, const char* fieldName, double value);

bool getMainPageBlowingData(NavTreeIndex index, MainPageBlowingData& out);
void setMainPageBlowingData(NavTreeIndex index, const MainPageBlowingData& data);
void setMainPageBlowingField(NavTreeIndex index, const char* fieldName, const char* value);

bool getMainPageChartData(NavTreeIndex index, MainPageChartData& out);
void setMainPageChartData(NavTreeIndex index, const MainPageChartData& data);
bool getMainPageChartTableData(NavTreeIndex index, MainPageChartTableData& out);
void setMainPageChartTableData(NavTreeIndex index, const MainPageChartTableData& data);
void setMainPageChartTableItem(NavTreeIndex index, int row, int column, const char* value);
bool getMainPageOperStageData(NavTreeIndex index, MainPageOperStageData& out);
void setMainPageOperStageData(NavTreeIndex index, const MainPageOperStageData& data);
void setMainPageOperStageItem(NavTreeIndex index, int row, int column, const char* value);
bool getMainPageOperTotalData(NavTreeIndex index, MainPageOperTotalData& out);
void setMainPageOperTotalData(NavTreeIndex index, const MainPageOperTotalData& data);
void setMainPageOperTotalItem(NavTreeIndex index, int row, int column, const char* value);
bool getMainPageProcessData(NavTreeIndex index, MainPageProcessData& out);
void setMainPageProcessData(NavTreeIndex index, const MainPageProcessData& data);
bool getMainPageVideoData(NavTreeIndex index, MainPageVideoData& out);
void setMainPageVideoData(NavTreeIndex index, const MainPageVideoData& data);

bool getVideoButtonDisplayMode(NavTreeIndex index, int& out);

bool validateLogin(const char* username, const char* password, char* errorMessage, int errorMessageSize);
void notifyApplicationShutdown();

}

#endif // STEELCLIENTDATAPROVIDER_H

